Health Cloud Patient Data Synchronization Process API - Implementation Template

(0 reviews)

Setup guide

This API is used by the Health Cloud Patient Data Synchronization LWC to trigger the patient synchronization process.

Please review the pre-requisite setup instructions for setting up Salesforce Health Cloud and Salesforce Connected App.

Importing Templates into Anypoint Studio

  1. In Studio, click the Exchange X icon in the upper left of the taskbar.
  2. Log in with your Anypoint Platform credentials.
  3. Search for the template.
  4. Click Open.

Running Templates in Anypoint Studio

After you import your template into Studio, follow these configuration steps to run it.

Common Configuration

  • mule.env - sets the environment where the application is to be deployed. It should be configured in config-<mule.env>.yaml file. For a studio deployment, the recommended mule.env value is local.
  • mule.key - sets the encryption password to be used for encrypting secure properties. Update as needed.
  • api.autoDiscoveryID should be configured in config-<mule.env>.yaml file.

Sync Application Configuration

The application requires a few things to be configured, mainly the system API connection
information. Configure them in the properties file located in the config/properties folder.

  • emr.sourceSystem is the default emr configuration to be used, if sourceSystem is not provided in the request
  • emr.identifierSystem is the default emr's identifier system. Used to update source system identifier, which allows the downstream system api to check for record before a create operation
  • sfdc-administration.host should be configured in config-<mule.env>.yaml file.
  • sfdc-clinical.host should be configured in config-<mule.env>.yaml file.
  • sfdc-diagnostic.host should be configured in config-<mule.env>.yaml file.
  • sfdc-medication.host should be configured in config-<mule.env>.yaml file.
  • medication.emr.host should be configured in config-<mule.env>.yaml file.
  • sys.emr.host should be configured in config-<mule.env>.yaml file.
  • clinical.emr.host should be configured in config-<mule.env>.yaml file.
  • diagnostic.emr.host should be configured in config-<mule.env>.yaml file.
  • sfdc-administration.clientsecret should be encrypted and configured in config-secured-<mule.env>.yaml file.
  • sfdc-clinical.clientsecret should be encrypted and configured in config-secured-<mule.env>.yaml file.
  • sfdc-diagnostic.clientsecret should be encrypted and configured in config-secured-<mule.env>.yaml file.
  • sfdc-medication.clientsecret should be encrypted and configured in config-secured-<mule.env>.yaml file.
  • medication.emr.clientsecret should be encrypted and configured in config-secured-<mule.env>.yaml file.
  • sys.emr.clientsecret should be encrypted and configured in config-secured-<mule.env>.yaml file.
  • clinical.emr.clientsecret should be encrypted and configured in config-secured-<mule.env>.yaml file.
  • diagnostic.emr.clientsecret should be encrypted and configured in config-secured-<mule.env>.yaml file.

Please refer to the attached link on how to secure the configuration properties.

HTTPS Configuration

  • https.host — sets the service host interface. It should be configured in config-<mule.env>.yaml file. (Defaults to 0.0.0.0 for all interfaces).
  • https.port — sets the HTTPS service port number. It should be configured in config-<mule.env>.yaml file. (Default 8082).
  • TLS Configuration - Keystore properties setup:
    • keystore.alias - sets the alias to the keystore. It should be configured in config-<mule.env>.yaml file.
    • keystore.path - sets the path to the key file. Key should be available in /src/main/resources/keystore. It should be configured in config-<mule.env>.yaml file.
    • keystore.keypass — sets keystore keypass to support HTTPS operation. It should be encrypted and configured in config-secured-<mule.env>.yaml file.
    • keystore.password— sets keystore password to support HTTPS operation. It should be encrypted and configured in config-secured-<mule.env>.yaml file.

Please refer to the attached link on how to generate the Keystore.

Run it

  1. Right-click the template project folder.
  2. Hover your mouse over 'Run as'.
  3. Click Mule Application (configure).
  4. Inside the dialog, select Environment and set the variable mule.env to the appropriate value (e.g., dev or local).
  5. Inside the dialog, select Environment and set the variable mule.key.
  6. In the Arguments tab in VM arguments text area increase the default memory. Has been tested successfully with these arguments. '-Xms2044m -Xmx4096m -XX:MaxPermSize=2048m' Adjust accordingly.
  7. Click Run.

Deployment instructions for CloudHub using provided scripts

Note: When deploying to CloudHub this application requires at a minimum 1 vCores to run.

Ensure the Maven profile CloudHub-DEV has been properly configured in your
settings.xml file. Reference can be found by downloading the Accelerator Common Resources asset. Additional instructions are available in the Getting Started with MuleSoft Accelerators - Build Environment guide.

Update the config-<env>.yaml properties appropriately and then use one of the following scripts to deploy the application to CloudHub:

  • packageDeploy.sh or deployOnly.sh (Mac/Linux)
  • packageDeploy.cmd or deployOnly.cmd (Windows)

Assumptions

  • A default value for participant.individual field is added for Encounter resource if the incoming payload request does not specify any value. Update the default value to a Practitioner in your Salesforce org as per your requirements.
  • Salesforce Health Cloud do not accept the Planned Status for an encounter in the past. As a workaround for testing, the status is overridden. It is recommended to remove the logic that overrides the encounter status as per your requirements.
  • A default value for address.text field is added for Location resoure if the incoming payload request does not specify any value. Update the default value as per your requirements.
  • A default value for Name field is added for Immunization resoure if the incoming payload request does not specify any value. Update the default value as per your requirements.

Test it

  • Use Advanced Rest Client or Postman to send a request over HTTPS. The template includes a postman collection in the src/test/resources folder. Update the collection variable(s) after successful import.

Reviews

TypeTemplate
OrganizationMuleSoft
Published by
MuleSoft Solutions
Published onJan 2, 2024
Asset overview

Asset versions for 1.0.x

Asset versions
StatusVersionActions
1.0.7
1.0.6
1.0.5
1.0.4
1.0.3
1.0.2
1.0.1
1.0.0